package com.my.gesturelockandwakedemo.activity;

import android.app.ActivityManager;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;

import com.my.gesturelockandwakedemo.util.CacheActivity;
import com.my.gesturelockandwakedemo.util.SharedPrefUtil;

import java.util.List;

/**
 * 项目名称：GestureLockAndWake2
 * 创建人：
 * 创建时间：2017/12/18 9:05
 */

public class BaseActivity extends AppCompatActivity {

    public static boolean isActivity = true;
    /*** 是否有手势密码 */
    public static boolean gestureFlag;
    /*** 是否是登录状态 */
    public static String strUserId;
    private SharedPrefUtil sp;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        CacheActivity.addActivity(this);

        sp = new SharedPrefUtil(this, "MyGestureLock");
        Log.i("mwb","66666");
    }

    @Override
    protected void onStop() {
        super.onStop();

        Log.i("mwbm", "onStop BaseActivity");
        if (!isAppOnFreground()) {
            Log.i("mwb", "back");
            isActivity = false;
        }
    }

    @Override
    protected void onResume() {
        super.onResume();

        // 是否为登录状态
        strUserId = sp.getString("userId", "");
        // 是否拥有手势密码
        gestureFlag = sp.getBoolean("GestureFlag", false);

        if (strUserId.isEmpty()) { // 是否登录

        } else if (strUserId.equals("0")) {

        } else { // 为登录状态

            // 是否正在显示这个界面 TODO


            if (gestureFlag) { // 是否有手势密码
                if (!isActivity) {
                    // 从后台唤醒
                    isActivity = true;
                    Intent n = new Intent(this, CheckGestureLockActivity.class);
                    startActivity(n);
                }
            }
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        CacheActivity.finishSingleActivity(this);
    }

    /**
     * 是否在后台
     *
     * @return boolean
     */
    public boolean isAppOnFreground() {
        // Activity 管理器 (管理应用程序的系统状态)
        ActivityManager am = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE);
        // 当前的包名
        String curPackageName = getApplicationContext().getPackageName();
        // 运行应用程序进程信息  = 获取正在运行的应用进程
        List<ActivityManager.RunningAppProcessInfo> app = am.getRunningAppProcesses();
        // 如果app(运行进程信息)为null return false
        if (app == null) {
            return false;
        }
        // 遍历程序进程
        for (ActivityManager.RunningAppProcessInfo a : app) {
            if (a.processName.equals(curPackageName) &&
                    a.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
                return true;
            }
        }

        return false;
    }

    /**
     * 初始化控件
     */
    public void initDatas() {

    }

    /**
     * 初始化界面
     */
    public void initViews() {

    }

    /**
     * 初始化点击事件
     */
    public void initOnClickEvents() {

    }
}
